iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 7
1
自我挑戰組

關於我的佛系SCSS開發系列 第 7

鐵人賽07天map

  • 分享至 

  • xImage
  •  

寫著寫這剛好已經第7天滿一週了,沒想到我意外寫了7天,不過先說一下預計,寫的內容會採取不連貫為主方式,我就

是任性想寫啥就寫啥(O

好吧我們就直接進入範例看一下MAP的使用方式

編譯前
$font-weights: (
  'regular': 400,
  'medium': 500,
  'bold': 700,
);

.ex1 {
  font-weight: map-get($font-weights, 'medium');
}

.ex2 {
  font-weight: map-get($font-weights, 'extra-bold');
}

編譯後
.ex1 {
  font-weight: 500;
}

今天上面那個範例,如果看了官網直接只用囉,map.get($font-weights, 'medium'),就覺得WTF為啥編譯不出

來,我不是看官網你騙我編譯不出來,正確用法應該是要用map-get($font-weights, 'medium'),

才可以正常編譯出來,好了進入這個範例,很簡單用法用了有一個$font-weights利用裡面的key,拿到我們所需要

的值

編譯前
$light-weights: (
  'lightest': 100,
  'light': 300,
);
$heavy-weights: (
  'medium': 500,
  'bold': 700,
);

$group: map-merge($light-weights, $heavy-weights);

.ex3 {
  font-weight: map-get($group, 'bold');
}

編譯後
.ex3 {
  font-weight: 700;
}

上面這個範例是map另外一個用法,map-merge,他可以把兩個map合併成同一個map,可以一起使用合併再一起的

使用,然後map也可以使用裡面的name值,透過可能一些迴圈方式,產生出一些我們自己設定的class,和我們需要的

值,下面我們以一個範例來說明,這樣透過value和name達成客制管理需求


group,承接上面那個一個merge之後的值

@each $name, $value in $group {
  .font__#{$name} {
    font-weight: $value;
  }
}
.font__lightest {
  font-weight: 100;
}

.font__light {
  font-weight: 300;
}

.font__medium {
  font-weight: 500;
}

.font__bold {
  font-weight: 700;
}

上一篇
鐵人賽06天Interpolation
下一篇
鐵人賽08天list
系列文
關於我的佛系SCSS開發30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言